home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / misc / math / parall.sit / Parallaxis 2.0 / auto.z < prev    next >
Encoding:
Text File  |  1991-05-02  |  2.5 KB  |  84 lines

  1. START
  2. 79 PE
  3. 2 PORTS
  4. SCALAR     I1 I1
  5. VECTOR     I1 B3
  6.     1  :    GOTO 34;
  7.     2  :    PROC 1 VECTOR I1;
  8.         POPV VI1:1;
  9.         VI[VI1:1] := 0;
  10.         PUSHV VI1:1;
  11.         RETURN;
  12.     3  :    PROC 1;
  13.         ERROR "value out of range";
  14.         RETURN;
  15.     4  :    PROC 1
  16.         SCALAR    
  17.         VECTOR     I2 I1; group number 1
  18.         PUSHV ADDR VI1:2;
  19.     5  :    VI1:1 := ID - 1; for LIST calculating DIMi
  20.         VI1:1 := VI1:1 + 1;      DIM1
  21.     6  :    VI1:3 := VI1:1 - 1;
  22.     7  :    VI1:3 := VI1:3 - 1;
  23.     8  :    VI1:2 := VI1:3;
  24.         VI1:2 := VI1:2 + 1;
  25.         IF VI1:3 < 0 CALL 2;
  26.         IF VI1:3 > 78 CALL 2;
  27.         CONNECT 1 TO 2 AT VI1:2;
  28.     9  :    VI1:3 := VI1:1 + 1;
  29.    10  :    VI1:3 := VI1:3 - 1;
  30.    11  :    VI1:2 := VI1:3;
  31.         VI1:2 := VI1:2 + 1;
  32.         IF VI1:3 < 0 CALL 2;
  33.         IF VI1:3 > 78 CALL 2;
  34.         CONNECT 2 TO 1 AT VI1:2;
  35.    12  :    POPV VI1:2;
  36.    13  :    RETURN;    group number : 1
  37.    14  :    PROC 1;    configuration : LIST
  38.         VI0:1 := ID - 1; for LIST calculating DIMi
  39.         VI0:1 := VI0:1 + 1;      DIM1
  40.         RETURN;    configuration : LIST
  41.    15  :    PROC 1 
  42.         SCALAR     B79 I1 I3    ;     OUT
  43.    16!15  :    CALL 14; line 15 column 2 
  44.    17  :    STORE VB0:1 TO SB1:1;
  45.    18!16  :    SI1:1 := 1; line 16 column 2 
  46.    19  :    SI1:2 := 79;
  47.    20!16  :    IF SI1:1 > SI1:2 GOTO 32; line 16 column 2 
  48.    21!17  :    IF SI1:1 < 1 CALL 3; line 17 column 4 
  49.    22  :    IF 79 < SI1:1 CALL 3;
  50.    23  :    SI1:3 := ADDR SB1:1 - SIZE( B1 );
  51.    24  :    SI1:4 := SI1:1 * SIZE( B1 );
  52.    25  :    SI1:3 := SI1:3 + SI1:4;
  53.    26  :    IF SB[SI1:3] = FALSE GOTO 29;
  54.    27!17  :    WRITE 'X'; line 17 column 17 
  55.    28  :    GOTO 30;
  56.    29!17  :    WRITE ' '; line 17 column 33 
  57.    30  :    SI1:1 := SI1:1 + 1;
  58.    31  :    GOTO 20;
  59.    32!19  :    WRITE EOL; line 19 column 2 
  60.    33!20  :    RETURN;     OUT
  61.    34  :    CALL 4;    connections
  62.    35!23  :    CALL 14; line 23 column 2 
  63.    36!24  :    VB0:1 := FALSE; line 24 column 4 
  64.    37!26  :    CALL 14; line 26 column 2 
  65.    38  :    PARALLEL    00000000000000000000000000000000000000100000000000
  66.                 00000000000000000000000000000;
  67.    39!27  :    VB0:1 := TRUE; line 27 column 4 
  68.    40!28  :    PARALLEL    11111111111111111111111111111111111111111111111111
  69.                 11111111111111111111111111111;
  70.    41!30  :    SI0:1 := 1; line 30 column 2 
  71.    42  :    SI0:2 := 50;
  72.    43!30  :    IF SI0:1 > SI0:2 GOTO 53; line 30 column 2 
  73.    44!31  :    CALL 15; OUT line 31 column 4 
  74.    45!32  :    CALL 14; line 32 column 4 
  75.    46!33  :    VB0:2 := VB0:1; line 33 column 6 
  76.    47  :    PROPAGATE VB0:2 OUT 1 IN 2;
  77.    48!34  :    VB0:3 := VB0:1; line 34 column 6 
  78.    49  :    PROPAGATE VB0:3 OUT 2 IN 1;
  79.    50!35  :    VB0:1 := VB0:2 <> VB0:3; line 35 column 6 
  80.    51  :    SI0:1 := SI0:1 + 1;
  81.    52  :    GOTO 43;
  82.    53  :    END;    CELLULAR_AUTOMATON
  83. STOP
  84.